package com.example.demo2.controller;


import com.example.demo2.model.BELONG;
import com.example.demo2.model.ResponseBo;
import com.example.demo2.model.TEXT;
import com.example.demo2.model.TYPE;
import com.example.demo2.service.AdminService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping(value = "/admin")
public class AdminController {
    @Autowired
    AdminService adminService;

    /*添加类型*/
    @RequestMapping(value = "/addType.do")
    public ResponseBo addType(TYPE type){
        log.info("进入 AdminController 类的 addType 方法");
        ResponseBo responseBo=new ResponseBo();
        try{
            responseBo=adminService.addType(type);
        }catch (Exception e){
            log.error("AdminController 类的 addType 方法出现异常:");
            e.printStackTrace();
            responseBo.setResMsg("添加失败");
            log.info("退出 AdminController 类的 addType 方法");
            return responseBo;
        }
        log.info("退出 AdminController 类的 addType 方法");
        return responseBo;
    }

    /*获取类型*/
    @RequestMapping(value = "/getTypes.do")
    public ResponseBo getTypes(){
        log.info("进入 AdminController 类的 getTypes 方法");
        ResponseBo responseBo=new ResponseBo();
        try{
            responseBo=adminService.getTypes();
        }catch (Exception e){
            log.error("AdminController 类的 getTypes 方法出现异常:");
            e.printStackTrace();
            responseBo.setResMsg("添加失败");
            log.info("退出 AdminController 类的 getTypes 方法");
            return responseBo;
        }
        log.info("退出 AdminController 类的 getTypes 方法");
        return responseBo;
    }

    /*获取类型归属*/
    @RequestMapping(value = "/getBelongs.do")
    public ResponseBo getBelongs(){
        log.info("进入 AdminController 类的 getBelongs 方法");
        ResponseBo responseBo=new ResponseBo();
        try{
            responseBo=adminService.getBelongs();
        }catch (Exception e){
            log.error("AdminController 类的 getBelongs 方法出现异常:");
            e.printStackTrace();
            responseBo.setResMsg("添加失败");
            log.info("退出 AdminController 类的 getBelongs 方法");
            return responseBo;
        }
        log.info("退出 AdminController 类的 getBelongs 方法");
        return responseBo;
    }

    /*添加类型归属*/
    @RequestMapping(value = "/addBelongs.do")
    public ResponseBo addBelongs(BELONG belong){
        log.info("进入 AdminController 类的 addBelongs 方法");
        ResponseBo responseBo=new ResponseBo();
        try{
            responseBo=adminService.addBelongs(belong);
        }catch (Exception e){
            log.error("AdminController 类的 addBelongs 方法出现异常:");
            e.printStackTrace();
            responseBo.setResMsg("添加失败");
            log.info("退出 AdminController 类的 addBelongs 方法");
            return responseBo;
        }
        log.info("退出 AdminController 类的 addBelongs 方法");
        return responseBo;
    }

    /*获取文章*/
    @RequestMapping(value = "/getTexts.do")
    public ResponseBo getTexts(int typeid){
        log.info("进入 AdminController 类的 getTexts 方法");
        ResponseBo responseBo=new ResponseBo();
        try{
            responseBo=adminService.getTexts(typeid);
        }catch (Exception e){
            log.error("AdminController 类的 getTexts 方法出现异常:");
            e.printStackTrace();
            responseBo.setResMsg("添加失败");
            log.info("退出 AdminController 类的 getTexts 方法");
            return responseBo;
        }
        log.info("退出 AdminController 类的 getTexts 方法");
        return responseBo;
    }

    /*添加文章*/
    @RequestMapping(value = "/addTexts.do")
    public ResponseBo addTexts(TEXT text){
        log.info("进入 AdminController 类的 addTexts 方法");
        ResponseBo responseBo=new ResponseBo();
        try{
            responseBo=adminService.addTexts(text);
        }catch (Exception e){
            log.error("AdminController 类的 addTexts 方法出现异常:");
            e.printStackTrace();
            responseBo.setResMsg("添加失败");
            log.info("退出 AdminController 类的 addTexts 方法");
            return responseBo;
        }
        log.info("退出 AdminController 类的 addTexts 方法");
        return responseBo;
    }

    /*获取用户*/
    @RequestMapping(value = "/getUserById.do")
    public ResponseBo getUserById(int userid){
        log.info("进入 AdminController 类的 getUser 方法");
        ResponseBo responseBo=new ResponseBo();
        try{
            responseBo=adminService.getUserById(userid);
        }catch (Exception e){
            log.error("AdminController 类的 getUser 方法出现异常:");
            e.printStackTrace();
            responseBo.setResMsg("添加失败");
            log.info("退出 AdminController 类的 getUser 方法");
            return responseBo;
        }
        log.info("退出 AdminController 类的 getUser 方法");
        return responseBo;
    }


}
